#include <chrono>
#include <cmath>
#include <opencv2/opencv.hpp>
#include <string>
#include <vector>

const std::vector<std::pair<cv::dnn::Backend, cv::dnn::Target>>
    backend_target_pairs = {
        {cv::dnn::DNN_BACKEND_OPENCV, cv::dnn::DNN_TARGET_CPU},
        {cv::dnn::DNN_BACKEND_CUDA, cv::dnn::DNN_TARGET_CUDA},
        {cv::dnn::DNN_BACKEND_CUDA, cv::dnn::DNN_TARGET_CUDA_FP16},
        {cv::dnn::DNN_BACKEND_TIMVX, cv::dnn::DNN_TARGET_NPU},
        {cv::dnn::DNN_BACKEND_CANN, cv::dnn::DNN_TARGET_NPU}};

class MPPalmDet {
   private:
    std::string model_path;
    float nms_threshold;
    float score_threshold;
    int topK;
    int backend_id;
    int target_id;
    cv::Size input_size;
    cv::dnn::Net model;
    std::vector<cv::Point2f> anchors;

    std::vector<cv::Point2f> loadAnchors();
    
    std::pair<cv::Mat, cv::Point2i> preprocess(const cv::Mat& image) {
        cv::Point2i pad_bias(0, 0);
        float ratio =
            std::min(static_cast<float>(input_size.width) / image.cols,
                     static_cast<float>(input_size.height) / image.rows);

        cv::Mat processed_image;
        if (image.rows != input_size.height || image.cols != input_size.width) {
            cv::Size ratio_size(static_cast<int>(image.cols * ratio),
                                static_cast<int>(image.rows * ratio));
            cv::resize(image, processed_image, ratio_size);

            int pad_h = input_size.height - ratio_size.height;
            int pad_w = input_size.width - ratio_size.width;
            pad_bias.x = pad_w / 2;
            pad_bias.y = pad_h / 2;

            cv::copyMakeBorder(processed_image, processed_image, pad_bias.y,
                               pad_h - pad_bias.y, pad_bias.x,
                               pad_w - pad_bias.x, cv::BORDER_CONSTANT,
                               cv::Scalar(0, 0, 0));
        } else {
            processed_image = image.clone();
        }

        // Create blob with correct parameters
        cv::Mat blob;
        cv::dnn::Image2BlobParams params;
        params.datalayout = cv::dnn::DNN_LAYOUT_NHWC;
        params.ddepth = CV_32F;
        params.mean = cv::Scalar::all(0);
        params.scalefactor = cv::Scalar::all(1.0 / 255.0);
        params.size = input_size;
        params.swapRB = true;
        params.paddingmode = cv::dnn::DNN_PMODE_NULL;

        blob = cv::dnn::blobFromImageWithParams(processed_image, params);

        pad_bias.x = static_cast<int>(pad_bias.x / ratio);
        pad_bias.y = static_cast<int>(pad_bias.y / ratio);

        return {blob, pad_bias};
    }

    std::vector<std::vector<float>> postprocess(
        const std::vector<cv::Mat>& output_blobs, const cv::Size& original_size,
        const cv::Point2i& pad_bias) {
        cv::Mat scores =
            output_blobs[1].reshape(1, output_blobs[1].total() / 1);
        cv::Mat boxes =
            output_blobs[0].reshape(1, output_blobs[0].total() / 18);

        std::vector<float> score_vec;
        std::vector<cv::Rect2f> boxes_vec;
        std::vector<std::vector<cv::Point2f>> landmarks_vec;

        float scale = std::max(original_size.height, original_size.width);

        // Process all detections first
        for (int i = 0; i < scores.rows; i++) {
            float score = 1.0f / (1.0f + std::exp(-scores.at<float>(i, 0)));

            // Extract box and landmark deltas
            cv::Mat box_delta = boxes.row(i).colRange(0, 4);
            cv::Mat landmark_delta = boxes.row(i).colRange(4, 18);
            cv::Point2f anchor = anchors[i];

            // Normalize box deltas by input size
            cv::Point2f cxy_delta(box_delta.at<float>(0) / input_size.width,
                                  box_delta.at<float>(1) / input_size.height);
            cv::Point2f wh_delta(box_delta.at<float>(2) / input_size.width,
                                 box_delta.at<float>(3) / input_size.height);

            // Calculate box coordinates (scale first, then subtract pad_bias)
            cv::Point2f xy1(
                (cxy_delta.x - wh_delta.x / 2 + anchor.x) * scale - pad_bias.x,
                (cxy_delta.y - wh_delta.y / 2 + anchor.y) * scale - pad_bias.y);
            cv::Point2f xy2(
                (cxy_delta.x + wh_delta.x / 2 + anchor.x) * scale - pad_bias.x,
                (cxy_delta.y + wh_delta.y / 2 + anchor.y) * scale - pad_bias.y);

            if (score > score_threshold) {
                score_vec.push_back(score);
                boxes_vec.push_back(
                    cv::Rect2f(xy1.x, xy1.y, xy2.x - xy1.x, xy2.y - xy1.y));

                // Process landmarks
                std::vector<cv::Point2f> landmarks;
                for (int j = 0; j < 7; j++) {
                    // Normalize by input size
                    float dx =
                        landmark_delta.at<float>(j * 2) / input_size.width;
                    float dy =
                        landmark_delta.at<float>(j * 2 + 1) / input_size.height;

                    // Add anchor
                    dx += anchor.x;
                    dy += anchor.y;

                    // Scale and subtract pad_bias in one step
                    dx = dx * scale - pad_bias.x;
                    dy = dy * scale - pad_bias.y;

                    landmarks.push_back(cv::Point2f(dx, dy));
                }
                landmarks_vec.push_back(landmarks);
            }
        }

        // Perform NMS
        std::vector<int> indices;
        std::vector<cv::Rect> boxes_int;
        for (const auto& box : boxes_vec) {
            boxes_int.push_back(cv::Rect(
                static_cast<int>(box.x), static_cast<int>(box.y),
                static_cast<int>(box.width), static_cast<int>(box.height)));
        }
        cv::dnn::NMSBoxes(boxes_int, score_vec, score_threshold, nms_threshold,
                          indices);

        // Prepare results
        std::vector<std::vector<float>> results;
        for (int idx : indices) {
            std::vector<float> result;
            result.push_back(boxes_vec[idx].x);
            result.push_back(boxes_vec[idx].y);
            result.push_back(boxes_vec[idx].x + boxes_vec[idx].width);
            result.push_back(boxes_vec[idx].y + boxes_vec[idx].height);

            for (const auto& point : landmarks_vec[idx]) {
                result.push_back(point.x);
                result.push_back(point.y);
            }
            result.push_back(score_vec[idx]);
            results.push_back(result);
        }

        return results;
    }

   public:
    MPPalmDet(const std::string& modelPath, float nmsThreshold = 0.3f,
              float scoreThreshold = 0.5f, int topK = 5000,
              int backendId = cv::dnn::DNN_BACKEND_DEFAULT,
              int targetId = cv::dnn::DNN_TARGET_CPU)
        : model_path(modelPath),
          nms_threshold(nmsThreshold),
          score_threshold(scoreThreshold),
          topK(topK),
          backend_id(backendId),
          target_id(targetId),
          input_size(192, 192) {
        model = cv::dnn::readNet(model_path);
        model.setPreferableBackend(backend_id);
        model.setPreferableTarget(target_id);
        anchors = loadAnchors();
    }

    void setBackendAndTarget(int backendId, int targetId) {
        backend_id = backendId;
        target_id = targetId;
        model.setPreferableBackend(backend_id);
        model.setPreferableTarget(target_id);
    }

    std::vector<std::vector<float>> infer(const cv::Mat& image) {
        std::pair<cv::Mat, cv::Point2i> preprocess_result = preprocess(image);
        cv::Mat preprocessed_image = preprocess_result.first;
        cv::Point2i pad_bias = preprocess_result.second;
        model.setInput(preprocessed_image);
        std::vector<cv::Mat> outputs;
        model.forward(outputs, model.getUnconnectedOutLayersNames());
        return postprocess(outputs, image.size(), pad_bias);
    }
};

cv::Mat visualize(const cv::Mat& image,
                  const std::vector<std::vector<float>>& results,
                  bool print_results = false, float fps = 0.0f) {
    cv::Mat output = image.clone();

    if (fps > 0) {
        cv::putText(output, cv::format("FPS: %.2f", fps), cv::Point(0, 15),
                    cv::FONT_HERSHEY_SIMPLEX, 0.5, cv::Scalar(0, 0, 255));
    }

    for (size_t i = 0; i < results.size(); i++) {
        const std::vector<float>& result = results[i];
        float score = result.back();

        // Draw box - using direct coordinates
        cv::rectangle(
            output,
            cv::Point(static_cast<int>(result[0]), static_cast<int>(result[1])),
            cv::Point(static_cast<int>(result[2]), static_cast<int>(result[3])),
            cv::Scalar(0, 255, 0), 2);

        // Put score - using first coordinate of box
        cv::putText(output, cv::format("%.4f", score),
                    cv::Point(static_cast<int>(result[0]),
                              static_cast<int>(result[1]) + 12),
                    cv::FONT_HERSHEY_DUPLEX, 0.5, cv::Scalar(0, 255, 0));

        // Draw landmarks
        for (size_t j = 0; j < 7; j++) {
            cv::Point point(static_cast<int>(result[4 + j * 2]),
                            static_cast<int>(result[4 + j * 2 + 1]));
            cv::circle(output, point, 2, cv::Scalar(0, 0, 255), 2);
        }

        if (print_results) {
            std::cout << "-----------palm " << i + 1 << "-----------\n";
            std::cout << "score: " << score << "\n";
            std::cout << "palm box: [" << result[0] << ", " << result[1] << ", "
                      << result[2] << ", " << result[3] << "]\n";
            std::cout << "palm landmarks:\n";
            for (size_t j = 0; j < 7; j++) {
                std::cout << "\t(" << result[4 + j * 2] << ", "
                          << result[4 + j * 2 + 1] << ")\n";
            }
        }
    }

    return output;
}

int main(int argc, char** argv) {
    cv::CommandLineParser parser(
        argc, argv,
        "{help h usage ? |      | print this message }"
        "{input i       |      | path to input image }"
        "{model m       | palm_detection_mediapipe_2023feb.onnx | path to "
        "model file }"
        "{backend_target bt | 0 | backend-target pair (0:OpenCV CPU, 1:CUDA, "
        "2:CUDA FP16, 3:TIM-VX NPU, 4:CANN NPU) }"
        "{score_threshold | 0.8 | minimum confidence threshold }"
        "{nms_threshold   | 0.3 | NMS threshold }"
        "{save s         |     | save results to file }"
        "{vis v         |     | visualize results }");

    if (parser.has("help")) {
        parser.printMessage();
        return 0;
    }

    int backend_target = parser.get<int>("backend_target");
    if (backend_target < 0 || backend_target >= backend_target_pairs.size()) {
        std::cerr << "Error: Invalid backend_target value" << std::endl;
        return -1;
    }

    int backend_id = backend_target_pairs[backend_target].first;
    int target_id = backend_target_pairs[backend_target].second;

    // Create detector directly
    MPPalmDet detector(parser.get<std::string>("model"),
                       parser.get<float>("nms_threshold"),
                       parser.get<float>("score_threshold"),
                       5000,  // topK
                       backend_id, target_id);

    // Process image if input is provided
    if (parser.has("input")) {
        cv::Mat image = cv::imread(parser.get<std::string>("input"));
        if (image.empty()) {
            std::cerr << "Error: Could not read image: "
                      << parser.get<std::string>("input") << std::endl;
            return -1;
        }

        std::vector<std::vector<float>> results = detector.infer(image);
        if (results.empty()) {
            std::cout << "Hand not detected" << std::endl;
        }

        cv::Mat output = visualize(image, results, true);

        if (parser.has("save")) {
            cv::imwrite("result.jpg", output);
            std::cout << "Results saved to result.jpg\n" << std::endl;
        }

        if (parser.has("vis")) {
            cv::namedWindow(parser.get<std::string>("input"),
                            cv::WINDOW_AUTOSIZE);
            cv::imshow(parser.get<std::string>("input"), output);
            cv::waitKey(0);
        }
    }
    // Process camera feed if no input image
    else {
        cv::VideoCapture cap(0);
        if (!cap.isOpened()) {
            std::cerr << "Error: Could not open camera" << std::endl;
            return -1;
        }

        std::chrono::steady_clock::time_point start_time =
            std::chrono::steady_clock::now();
        int frame_count = 0;

        while (true) {
            cv::Mat frame;
            cap >> frame;
            if (frame.empty()) {
                std::cout << "No frames grabbed!" << std::endl;
                break;
            }

            std::vector<std::vector<float>> results = detector.infer(frame);
            frame_count++;

            std::chrono::steady_clock::time_point current_time =
                std::chrono::steady_clock::now();
            float fps =
                frame_count / (std::chrono::duration_cast<std::chrono::seconds>(
                                   current_time - start_time)
                                   .count() +
                               1);

            cv::Mat output = visualize(frame, results, false, fps);
            cv::imshow("MPPalmDet Demo", output);

            if (cv::waitKey(1) >= 0) break;
        }
    }

    return 0;
}

std::vector<cv::Point2f> MPPalmDet::loadAnchors() {
    std::vector<cv::Point2f> anchors = {
{0.02083333f, 0.02083333f},
            {0.02083333f, 0.02083333f},
            {0.06250000f, 0.02083333f},
            {0.06250000f, 0.02083333f},
            {0.10416666f, 0.02083333f},
            {0.10416666f, 0.02083333f},
            {0.14583333f, 0.02083333f},
            {0.14583333f, 0.02083333f},
            {0.18750000f, 0.02083333f},
            {0.18750000f, 0.02083333f},
            {0.22916667f, 0.02083333f},
            {0.22916667f, 0.02083333f},
            {0.27083334f, 0.02083333f},
            {0.27083334f, 0.02083333f},
            {0.31250000f, 0.02083333f},
            {0.31250000f, 0.02083333f},
            {0.35416666f, 0.02083333f},
            {0.35416666f, 0.02083333f},
            {0.39583334f, 0.02083333f},
            {0.39583334f, 0.02083333f},
            {0.43750000f, 0.02083333f},
            {0.43750000f, 0.02083333f},
            {0.47916666f, 0.02083333f},
            {0.47916666f, 0.02083333f},
            {0.52083330f, 0.02083333f},
            {0.52083330f, 0.02083333f},
            {0.56250000f, 0.02083333f},
            {0.56250000f, 0.02083333f},
            {0.60416670f, 0.02083333f},
            {0.60416670f, 0.02083333f},
            {0.64583330f, 0.02083333f},
            {0.64583330f, 0.02083333f},
            {0.68750000f, 0.02083333f},
            {0.68750000f, 0.02083333f},
            {0.72916670f, 0.02083333f},
            {0.72916670f, 0.02083333f},
            {0.77083330f, 0.02083333f},
            {0.77083330f, 0.02083333f},
            {0.81250000f, 0.02083333f},
            {0.81250000f, 0.02083333f},
            {0.85416670f, 0.02083333f},
            {0.85416670f, 0.02083333f},
            {0.89583330f, 0.02083333f},
            {0.89583330f, 0.02083333f},
            {0.93750000f, 0.02083333f},
            {0.93750000f, 0.02083333f},
            {0.97916670f, 0.02083333f},
            {0.97916670f, 0.02083333f},
            {0.02083333f, 0.06250000f},
            {0.02083333f, 0.06250000f},
            {0.06250000f, 0.06250000f},
            {0.06250000f, 0.06250000f},
            {0.10416666f, 0.06250000f},
            {0.10416666f, 0.06250000f},
            {0.14583333f, 0.06250000f},
            {0.14583333f, 0.06250000f},
            {0.18750000f, 0.06250000f},
            {0.18750000f, 0.06250000f},
            {0.22916667f, 0.06250000f},
            {0.22916667f, 0.06250000f},
            {0.27083334f, 0.06250000f},
            {0.27083334f, 0.06250000f},
            {0.31250000f, 0.06250000f},
            {0.31250000f, 0.06250000f},
            {0.35416666f, 0.06250000f},
            {0.35416666f, 0.06250000f},
            {0.39583334f, 0.06250000f},
            {0.39583334f, 0.06250000f},
            {0.43750000f, 0.06250000f},
            {0.43750000f, 0.06250000f},
            {0.47916666f, 0.06250000f},
            {0.47916666f, 0.06250000f},
            {0.52083330f, 0.06250000f},
            {0.52083330f, 0.06250000f},
            {0.56250000f, 0.06250000f},
            {0.56250000f, 0.06250000f},
            {0.60416670f, 0.06250000f},
            {0.60416670f, 0.06250000f},
            {0.64583330f, 0.06250000f},
            {0.64583330f, 0.06250000f},
            {0.68750000f, 0.06250000f},
            {0.68750000f, 0.06250000f},
            {0.72916670f, 0.06250000f},
            {0.72916670f, 0.06250000f},
            {0.77083330f, 0.06250000f},
            {0.77083330f, 0.06250000f},
            {0.81250000f, 0.06250000f},
            {0.81250000f, 0.06250000f},
            {0.85416670f, 0.06250000f},
            {0.85416670f, 0.06250000f},
            {0.89583330f, 0.06250000f},
            {0.89583330f, 0.06250000f},
            {0.93750000f, 0.06250000f},
            {0.93750000f, 0.06250000f},
            {0.97916670f, 0.06250000f},
            {0.97916670f, 0.06250000f},
            {0.02083333f, 0.10416666f},
            {0.02083333f, 0.10416666f},
            {0.06250000f, 0.10416666f},
            {0.06250000f, 0.10416666f},
            {0.10416666f, 0.10416666f},
            {0.10416666f, 0.10416666f},
            {0.14583333f, 0.10416666f},
            {0.14583333f, 0.10416666f},
            {0.18750000f, 0.10416666f},
            {0.18750000f, 0.10416666f},
            {0.22916667f, 0.10416666f},
            {0.22916667f, 0.10416666f},
            {0.27083334f, 0.10416666f},
            {0.27083334f, 0.10416666f},
            {0.31250000f, 0.10416666f},
            {0.31250000f, 0.10416666f},
            {0.35416666f, 0.10416666f},
            {0.35416666f, 0.10416666f},
            {0.39583334f, 0.10416666f},
            {0.39583334f, 0.10416666f},
            {0.43750000f, 0.10416666f},
            {0.43750000f, 0.10416666f},
            {0.47916666f, 0.10416666f},
            {0.47916666f, 0.10416666f},
            {0.52083330f, 0.10416666f},
            {0.52083330f, 0.10416666f},
            {0.56250000f, 0.10416666f},
            {0.56250000f, 0.10416666f},
            {0.60416670f, 0.10416666f},
            {0.60416670f, 0.10416666f},
            {0.64583330f, 0.10416666f},
            {0.64583330f, 0.10416666f},
            {0.68750000f, 0.10416666f},
            {0.68750000f, 0.10416666f},
            {0.72916670f, 0.10416666f},
            {0.72916670f, 0.10416666f},
            {0.77083330f, 0.10416666f},
            {0.77083330f, 0.10416666f},
            {0.81250000f, 0.10416666f},
            {0.81250000f, 0.10416666f},
            {0.85416670f, 0.10416666f},
            {0.85416670f, 0.10416666f},
            {0.89583330f, 0.10416666f},
            {0.89583330f, 0.10416666f},
            {0.93750000f, 0.10416666f},
            {0.93750000f, 0.10416666f},
            {0.97916670f, 0.10416666f},
            {0.97916670f, 0.10416666f},
            {0.02083333f, 0.14583333f},
            {0.02083333f, 0.14583333f},
            {0.06250000f, 0.14583333f},
            {0.06250000f, 0.14583333f},
            {0.10416666f, 0.14583333f},
            {0.10416666f, 0.14583333f},
            {0.14583333f, 0.14583333f},
            {0.14583333f, 0.14583333f},
            {0.18750000f, 0.14583333f},
            {0.18750000f, 0.14583333f},
            {0.22916667f, 0.14583333f},
            {0.22916667f, 0.14583333f},
            {0.27083334f, 0.14583333f},
            {0.27083334f, 0.14583333f},
            {0.31250000f, 0.14583333f},
            {0.31250000f, 0.14583333f},
            {0.35416666f, 0.14583333f},
            {0.35416666f, 0.14583333f},
            {0.39583334f, 0.14583333f},
            {0.39583334f, 0.14583333f},
            {0.43750000f, 0.14583333f},
            {0.43750000f, 0.14583333f},
            {0.47916666f, 0.14583333f},
            {0.47916666f, 0.14583333f},
            {0.52083330f, 0.14583333f},
            {0.52083330f, 0.14583333f},
            {0.56250000f, 0.14583333f},
            {0.56250000f, 0.14583333f},
            {0.60416670f, 0.14583333f},
            {0.60416670f, 0.14583333f},
            {0.64583330f, 0.14583333f},
            {0.64583330f, 0.14583333f},
            {0.68750000f, 0.14583333f},
            {0.68750000f, 0.14583333f},
            {0.72916670f, 0.14583333f},
            {0.72916670f, 0.14583333f},
            {0.77083330f, 0.14583333f},
            {0.77083330f, 0.14583333f},
            {0.81250000f, 0.14583333f},
            {0.81250000f, 0.14583333f},
            {0.85416670f, 0.14583333f},
            {0.85416670f, 0.14583333f},
            {0.89583330f, 0.14583333f},
            {0.89583330f, 0.14583333f},
            {0.93750000f, 0.14583333f},
            {0.93750000f, 0.14583333f},
            {0.97916670f, 0.14583333f},
            {0.97916670f, 0.14583333f},
            {0.02083333f, 0.18750000f},
            {0.02083333f, 0.18750000f},
            {0.06250000f, 0.18750000f},
            {0.06250000f, 0.18750000f},
            {0.10416666f, 0.18750000f},
            {0.10416666f, 0.18750000f},
            {0.14583333f, 0.18750000f},
            {0.14583333f, 0.18750000f},
            {0.18750000f, 0.18750000f},
            {0.18750000f, 0.18750000f},
            {0.22916667f, 0.18750000f},
            {0.22916667f, 0.18750000f},
            {0.27083334f, 0.18750000f},
            {0.27083334f, 0.18750000f},
            {0.31250000f, 0.18750000f},
            {0.31250000f, 0.18750000f},
            {0.35416666f, 0.18750000f},
            {0.35416666f, 0.18750000f},
            {0.39583334f, 0.18750000f},
            {0.39583334f, 0.18750000f},
            {0.43750000f, 0.18750000f},
            {0.43750000f, 0.18750000f},
            {0.47916666f, 0.18750000f},
            {0.47916666f, 0.18750000f},
            {0.52083330f, 0.18750000f},
            {0.52083330f, 0.18750000f},
            {0.56250000f, 0.18750000f},
            {0.56250000f, 0.18750000f},
            {0.60416670f, 0.18750000f},
            {0.60416670f, 0.18750000f},
            {0.64583330f, 0.18750000f},
            {0.64583330f, 0.18750000f},
            {0.68750000f, 0.18750000f},
            {0.68750000f, 0.18750000f},
            {0.72916670f, 0.18750000f},
            {0.72916670f, 0.18750000f},
            {0.77083330f, 0.18750000f},
            {0.77083330f, 0.18750000f},
            {0.81250000f, 0.18750000f},
            {0.81250000f, 0.18750000f},
            {0.85416670f, 0.18750000f},
            {0.85416670f, 0.18750000f},
            {0.89583330f, 0.18750000f},
            {0.89583330f, 0.18750000f},
            {0.93750000f, 0.18750000f},
            {0.93750000f, 0.18750000f},
            {0.97916670f, 0.18750000f},
            {0.97916670f, 0.18750000f},
            {0.02083333f, 0.22916667f},
            {0.02083333f, 0.22916667f},
            {0.06250000f, 0.22916667f},
            {0.06250000f, 0.22916667f},
            {0.10416666f, 0.22916667f},
            {0.10416666f, 0.22916667f},
            {0.14583333f, 0.22916667f},
            {0.14583333f, 0.22916667f},
            {0.18750000f, 0.22916667f},
            {0.18750000f, 0.22916667f},
            {0.22916667f, 0.22916667f},
            {0.22916667f, 0.22916667f},
            {0.27083334f, 0.22916667f},
            {0.27083334f, 0.22916667f},
            {0.31250000f, 0.22916667f},
            {0.31250000f, 0.22916667f},
            {0.35416666f, 0.22916667f},
            {0.35416666f, 0.22916667f},
            {0.39583334f, 0.22916667f},
            {0.39583334f, 0.22916667f},
            {0.43750000f, 0.22916667f},
            {0.43750000f, 0.22916667f},
            {0.47916666f, 0.22916667f},
            {0.47916666f, 0.22916667f},
            {0.52083330f, 0.22916667f},
            {0.52083330f, 0.22916667f},
            {0.56250000f, 0.22916667f},
            {0.56250000f, 0.22916667f},
            {0.60416670f, 0.22916667f},
            {0.60416670f, 0.22916667f},
            {0.64583330f, 0.22916667f},
            {0.64583330f, 0.22916667f},
            {0.68750000f, 0.22916667f},
            {0.68750000f, 0.22916667f},
            {0.72916670f, 0.22916667f},
            {0.72916670f, 0.22916667f},
            {0.77083330f, 0.22916667f},
            {0.77083330f, 0.22916667f},
            {0.81250000f, 0.22916667f},
            {0.81250000f, 0.22916667f},
            {0.85416670f, 0.22916667f},
            {0.85416670f, 0.22916667f},
            {0.89583330f, 0.22916667f},
            {0.89583330f, 0.22916667f},
            {0.93750000f, 0.22916667f},
            {0.93750000f, 0.22916667f},
            {0.97916670f, 0.22916667f},
            {0.97916670f, 0.22916667f},
            {0.02083333f, 0.27083334f},
            {0.02083333f, 0.27083334f},
            {0.06250000f, 0.27083334f},
            {0.06250000f, 0.27083334f},
            {0.10416666f, 0.27083334f},
            {0.10416666f, 0.27083334f},
            {0.14583333f, 0.27083334f},
            {0.14583333f, 0.27083334f},
            {0.18750000f, 0.27083334f},
            {0.18750000f, 0.27083334f},
            {0.22916667f, 0.27083334f},
            {0.22916667f, 0.27083334f},
            {0.27083334f, 0.27083334f},
            {0.27083334f, 0.27083334f},
            {0.31250000f, 0.27083334f},
            {0.31250000f, 0.27083334f},
            {0.35416666f, 0.27083334f},
            {0.35416666f, 0.27083334f},
            {0.39583334f, 0.27083334f},
            {0.39583334f, 0.27083334f},
            {0.43750000f, 0.27083334f},
            {0.43750000f, 0.27083334f},
            {0.47916666f, 0.27083334f},
            {0.47916666f, 0.27083334f},
            {0.52083330f, 0.27083334f},
            {0.52083330f, 0.27083334f},
            {0.56250000f, 0.27083334f},
            {0.56250000f, 0.27083334f},
            {0.60416670f, 0.27083334f},
            {0.60416670f, 0.27083334f},
            {0.64583330f, 0.27083334f},
            {0.64583330f, 0.27083334f},
            {0.68750000f, 0.27083334f},
            {0.68750000f, 0.27083334f},
            {0.72916670f, 0.27083334f},
            {0.72916670f, 0.27083334f},
            {0.77083330f, 0.27083334f},
            {0.77083330f, 0.27083334f},
            {0.81250000f, 0.27083334f},
            {0.81250000f, 0.27083334f},
            {0.85416670f, 0.27083334f},
            {0.85416670f, 0.27083334f},
            {0.89583330f, 0.27083334f},
            {0.89583330f, 0.27083334f},
            {0.93750000f, 0.27083334f},
            {0.93750000f, 0.27083334f},
            {0.97916670f, 0.27083334f},
            {0.97916670f, 0.27083334f},
            {0.02083333f, 0.31250000f},
            {0.02083333f, 0.31250000f},
            {0.06250000f, 0.31250000f},
            {0.06250000f, 0.31250000f},
            {0.10416666f, 0.31250000f},
            {0.10416666f, 0.31250000f},
            {0.14583333f, 0.31250000f},
            {0.14583333f, 0.31250000f},
            {0.18750000f, 0.31250000f},
            {0.18750000f, 0.31250000f},
            {0.22916667f, 0.31250000f},
            {0.22916667f, 0.31250000f},
            {0.27083334f, 0.31250000f},
            {0.27083334f, 0.31250000f},
            {0.31250000f, 0.31250000f},
            {0.31250000f, 0.31250000f},
            {0.35416666f, 0.31250000f},
            {0.35416666f, 0.31250000f},
            {0.39583334f, 0.31250000f},
            {0.39583334f, 0.31250000f},
            {0.43750000f, 0.31250000f},
            {0.43750000f, 0.31250000f},
            {0.47916666f, 0.31250000f},
            {0.47916666f, 0.31250000f},
            {0.52083330f, 0.31250000f},
            {0.52083330f, 0.31250000f},
            {0.56250000f, 0.31250000f},
            {0.56250000f, 0.31250000f},
            {0.60416670f, 0.31250000f},
            {0.60416670f, 0.31250000f},
            {0.64583330f, 0.31250000f},
            {0.64583330f, 0.31250000f},
            {0.68750000f, 0.31250000f},
            {0.68750000f, 0.31250000f},
            {0.72916670f, 0.31250000f},
            {0.72916670f, 0.31250000f},
            {0.77083330f, 0.31250000f},
            {0.77083330f, 0.31250000f},
            {0.81250000f, 0.31250000f},
            {0.81250000f, 0.31250000f},
            {0.85416670f, 0.31250000f},
            {0.85416670f, 0.31250000f},
            {0.89583330f, 0.31250000f},
            {0.89583330f, 0.31250000f},
            {0.93750000f, 0.31250000f},
            {0.93750000f, 0.31250000f},
            {0.97916670f, 0.31250000f},
            {0.97916670f, 0.31250000f},
            {0.02083333f, 0.35416666f},
            {0.02083333f, 0.35416666f},
            {0.06250000f, 0.35416666f},
            {0.06250000f, 0.35416666f},
            {0.10416666f, 0.35416666f},
            {0.10416666f, 0.35416666f},
            {0.14583333f, 0.35416666f},
            {0.14583333f, 0.35416666f},
            {0.18750000f, 0.35416666f},
            {0.18750000f, 0.35416666f},
            {0.22916667f, 0.35416666f},
            {0.22916667f, 0.35416666f},
            {0.27083334f, 0.35416666f},
            {0.27083334f, 0.35416666f},
            {0.31250000f, 0.35416666f},
            {0.31250000f, 0.35416666f},
            {0.35416666f, 0.35416666f},
            {0.35416666f, 0.35416666f},
            {0.39583334f, 0.35416666f},
            {0.39583334f, 0.35416666f},
            {0.43750000f, 0.35416666f},
            {0.43750000f, 0.35416666f},
            {0.47916666f, 0.35416666f},
            {0.47916666f, 0.35416666f},
            {0.52083330f, 0.35416666f},
            {0.52083330f, 0.35416666f},
            {0.56250000f, 0.35416666f},
            {0.56250000f, 0.35416666f},
            {0.60416670f, 0.35416666f},
            {0.60416670f, 0.35416666f},
            {0.64583330f, 0.35416666f},
            {0.64583330f, 0.35416666f},
            {0.68750000f, 0.35416666f},
            {0.68750000f, 0.35416666f},
            {0.72916670f, 0.35416666f},
            {0.72916670f, 0.35416666f},
            {0.77083330f, 0.35416666f},
            {0.77083330f, 0.35416666f},
            {0.81250000f, 0.35416666f},
            {0.81250000f, 0.35416666f},
            {0.85416670f, 0.35416666f},
            {0.85416670f, 0.35416666f},
            {0.89583330f, 0.35416666f},
            {0.89583330f, 0.35416666f},
            {0.93750000f, 0.35416666f},
            {0.93750000f, 0.35416666f},
            {0.97916670f, 0.35416666f},
            {0.97916670f, 0.35416666f},
            {0.02083333f, 0.39583334f},
            {0.02083333f, 0.39583334f},
            {0.06250000f, 0.39583334f},
            {0.06250000f, 0.39583334f},
            {0.10416666f, 0.39583334f},
            {0.10416666f, 0.39583334f},
            {0.14583333f, 0.39583334f},
            {0.14583333f, 0.39583334f},
            {0.18750000f, 0.39583334f},
            {0.18750000f, 0.39583334f},
            {0.22916667f, 0.39583334f},
            {0.22916667f, 0.39583334f},
            {0.27083334f, 0.39583334f},
            {0.27083334f, 0.39583334f},
            {0.31250000f, 0.39583334f},
            {0.31250000f, 0.39583334f},
            {0.35416666f, 0.39583334f},
            {0.35416666f, 0.39583334f},
            {0.39583334f, 0.39583334f},
            {0.39583334f, 0.39583334f},
            {0.43750000f, 0.39583334f},
            {0.43750000f, 0.39583334f},
            {0.47916666f, 0.39583334f},
            {0.47916666f, 0.39583334f},
            {0.52083330f, 0.39583334f},
            {0.52083330f, 0.39583334f},
            {0.56250000f, 0.39583334f},
            {0.56250000f, 0.39583334f},
            {0.60416670f, 0.39583334f},
            {0.60416670f, 0.39583334f},
            {0.64583330f, 0.39583334f},
            {0.64583330f, 0.39583334f},
            {0.68750000f, 0.39583334f},
            {0.68750000f, 0.39583334f},
            {0.72916670f, 0.39583334f},
            {0.72916670f, 0.39583334f},
            {0.77083330f, 0.39583334f},
            {0.77083330f, 0.39583334f},
            {0.81250000f, 0.39583334f},
            {0.81250000f, 0.39583334f},
            {0.85416670f, 0.39583334f},
            {0.85416670f, 0.39583334f},
            {0.89583330f, 0.39583334f},
            {0.89583330f, 0.39583334f},
            {0.93750000f, 0.39583334f},
            {0.93750000f, 0.39583334f},
            {0.97916670f, 0.39583334f},
            {0.97916670f, 0.39583334f},
            {0.02083333f, 0.43750000f},
            {0.02083333f, 0.43750000f},
            {0.06250000f, 0.43750000f},
            {0.06250000f, 0.43750000f},
            {0.10416666f, 0.43750000f},
            {0.10416666f, 0.43750000f},
            {0.14583333f, 0.43750000f},
            {0.14583333f, 0.43750000f},
            {0.18750000f, 0.43750000f},
            {0.18750000f, 0.43750000f},
            {0.22916667f, 0.43750000f},
            {0.22916667f, 0.43750000f},
            {0.27083334f, 0.43750000f},
            {0.27083334f, 0.43750000f},
            {0.31250000f, 0.43750000f},
            {0.31250000f, 0.43750000f},
            {0.35416666f, 0.43750000f},
            {0.35416666f, 0.43750000f},
            {0.39583334f, 0.43750000f},
            {0.39583334f, 0.43750000f},
            {0.43750000f, 0.43750000f},
            {0.43750000f, 0.43750000f},
            {0.47916666f, 0.43750000f},
            {0.47916666f, 0.43750000f},
            {0.52083330f, 0.43750000f},
            {0.52083330f, 0.43750000f},
            {0.56250000f, 0.43750000f},
            {0.56250000f, 0.43750000f},
            {0.60416670f, 0.43750000f},
            {0.60416670f, 0.43750000f},
            {0.64583330f, 0.43750000f},
            {0.64583330f, 0.43750000f},
            {0.68750000f, 0.43750000f},
            {0.68750000f, 0.43750000f},
            {0.72916670f, 0.43750000f},
            {0.72916670f, 0.43750000f},
            {0.77083330f, 0.43750000f},
            {0.77083330f, 0.43750000f},
            {0.81250000f, 0.43750000f},
            {0.81250000f, 0.43750000f},
            {0.85416670f, 0.43750000f},
            {0.85416670f, 0.43750000f},
            {0.89583330f, 0.43750000f},
            {0.89583330f, 0.43750000f},
            {0.93750000f, 0.43750000f},
            {0.93750000f, 0.43750000f},
            {0.97916670f, 0.43750000f},
            {0.97916670f, 0.43750000f},
            {0.02083333f, 0.47916666f},
            {0.02083333f, 0.47916666f},
            {0.06250000f, 0.47916666f},
            {0.06250000f, 0.47916666f},
            {0.10416666f, 0.47916666f},
            {0.10416666f, 0.47916666f},
            {0.14583333f, 0.47916666f},
            {0.14583333f, 0.47916666f},
            {0.18750000f, 0.47916666f},
            {0.18750000f, 0.47916666f},
            {0.22916667f, 0.47916666f},
            {0.22916667f, 0.47916666f},
            {0.27083334f, 0.47916666f},
            {0.27083334f, 0.47916666f},
            {0.31250000f, 0.47916666f},
            {0.31250000f, 0.47916666f},
            {0.35416666f, 0.47916666f},
            {0.35416666f, 0.47916666f},
            {0.39583334f, 0.47916666f},
            {0.39583334f, 0.47916666f},
            {0.43750000f, 0.47916666f},
            {0.43750000f, 0.47916666f},
            {0.47916666f, 0.47916666f},
            {0.47916666f, 0.47916666f},
            {0.52083330f, 0.47916666f},
            {0.52083330f, 0.47916666f},
            {0.56250000f, 0.47916666f},
            {0.56250000f, 0.47916666f},
            {0.60416670f, 0.47916666f},
            {0.60416670f, 0.47916666f},
            {0.64583330f, 0.47916666f},
            {0.64583330f, 0.47916666f},
            {0.68750000f, 0.47916666f},
            {0.68750000f, 0.47916666f},
            {0.72916670f, 0.47916666f},
            {0.72916670f, 0.47916666f},
            {0.77083330f, 0.47916666f},
            {0.77083330f, 0.47916666f},
            {0.81250000f, 0.47916666f},
            {0.81250000f, 0.47916666f},
            {0.85416670f, 0.47916666f},
            {0.85416670f, 0.47916666f},
            {0.89583330f, 0.47916666f},
            {0.89583330f, 0.47916666f},
            {0.93750000f, 0.47916666f},
            {0.93750000f, 0.47916666f},
            {0.97916670f, 0.47916666f},
            {0.97916670f, 0.47916666f},
            {0.02083333f, 0.52083330f},
            {0.02083333f, 0.52083330f},
            {0.06250000f, 0.52083330f},
            {0.06250000f, 0.52083330f},
            {0.10416666f, 0.52083330f},
            {0.10416666f, 0.52083330f},
            {0.14583333f, 0.52083330f},
            {0.14583333f, 0.52083330f},
            {0.18750000f, 0.52083330f},
            {0.18750000f, 0.52083330f},
            {0.22916667f, 0.52083330f},
            {0.22916667f, 0.52083330f},
            {0.27083334f, 0.52083330f},
            {0.27083334f, 0.52083330f},
            {0.31250000f, 0.52083330f},
            {0.31250000f, 0.52083330f},
            {0.35416666f, 0.52083330f},
            {0.35416666f, 0.52083330f},
            {0.39583334f, 0.52083330f},
            {0.39583334f, 0.52083330f},
            {0.43750000f, 0.52083330f},
            {0.43750000f, 0.52083330f},
            {0.47916666f, 0.52083330f},
            {0.47916666f, 0.52083330f},
            {0.52083330f, 0.52083330f},
            {0.52083330f, 0.52083330f},
            {0.56250000f, 0.52083330f},
            {0.56250000f, 0.52083330f},
            {0.60416670f, 0.52083330f},
            {0.60416670f, 0.52083330f},
            {0.64583330f, 0.52083330f},
            {0.64583330f, 0.52083330f},
            {0.68750000f, 0.52083330f},
            {0.68750000f, 0.52083330f},
            {0.72916670f, 0.52083330f},
            {0.72916670f, 0.52083330f},
            {0.77083330f, 0.52083330f},
            {0.77083330f, 0.52083330f},
            {0.81250000f, 0.52083330f},
            {0.81250000f, 0.52083330f},
            {0.85416670f, 0.52083330f},
            {0.85416670f, 0.52083330f},
            {0.89583330f, 0.52083330f},
            {0.89583330f, 0.52083330f},
            {0.93750000f, 0.52083330f},
            {0.93750000f, 0.52083330f},
            {0.97916670f, 0.52083330f},
            {0.97916670f, 0.52083330f},
            {0.02083333f, 0.56250000f},
            {0.02083333f, 0.56250000f},
            {0.06250000f, 0.56250000f},
            {0.06250000f, 0.56250000f},
            {0.10416666f, 0.56250000f},
            {0.10416666f, 0.56250000f},
            {0.14583333f, 0.56250000f},
            {0.14583333f, 0.56250000f},
            {0.18750000f, 0.56250000f},
            {0.18750000f, 0.56250000f},
            {0.22916667f, 0.56250000f},
            {0.22916667f, 0.56250000f},
            {0.27083334f, 0.56250000f},
            {0.27083334f, 0.56250000f},
            {0.31250000f, 0.56250000f},
            {0.31250000f, 0.56250000f},
            {0.35416666f, 0.56250000f},
            {0.35416666f, 0.56250000f},
            {0.39583334f, 0.56250000f},
            {0.39583334f, 0.56250000f},
            {0.43750000f, 0.56250000f},
            {0.43750000f, 0.56250000f},
            {0.47916666f, 0.56250000f},
            {0.47916666f, 0.56250000f},
            {0.52083330f, 0.56250000f},
            {0.52083330f, 0.56250000f},
            {0.56250000f, 0.56250000f},
            {0.56250000f, 0.56250000f},
            {0.60416670f, 0.56250000f},
            {0.60416670f, 0.56250000f},
            {0.64583330f, 0.56250000f},
            {0.64583330f, 0.56250000f},
            {0.68750000f, 0.56250000f},
            {0.68750000f, 0.56250000f},
            {0.72916670f, 0.56250000f},
            {0.72916670f, 0.56250000f},
            {0.77083330f, 0.56250000f},
            {0.77083330f, 0.56250000f},
            {0.81250000f, 0.56250000f},
            {0.81250000f, 0.56250000f},
            {0.85416670f, 0.56250000f},
            {0.85416670f, 0.56250000f},
            {0.89583330f, 0.56250000f},
            {0.89583330f, 0.56250000f},
            {0.93750000f, 0.56250000f},
            {0.93750000f, 0.56250000f},
            {0.97916670f, 0.56250000f},
            {0.97916670f, 0.56250000f},
            {0.02083333f, 0.60416670f},
            {0.02083333f, 0.60416670f},
            {0.06250000f, 0.60416670f},
            {0.06250000f, 0.60416670f},
            {0.10416666f, 0.60416670f},
            {0.10416666f, 0.60416670f},
            {0.14583333f, 0.60416670f},
            {0.14583333f, 0.60416670f},
            {0.18750000f, 0.60416670f},
            {0.18750000f, 0.60416670f},
            {0.22916667f, 0.60416670f},
            {0.22916667f, 0.60416670f},
            {0.27083334f, 0.60416670f},
            {0.27083334f, 0.60416670f},
            {0.31250000f, 0.60416670f},
            {0.31250000f, 0.60416670f},
            {0.35416666f, 0.60416670f},
            {0.35416666f, 0.60416670f},
            {0.39583334f, 0.60416670f},
            {0.39583334f, 0.60416670f},
            {0.43750000f, 0.60416670f},
            {0.43750000f, 0.60416670f},
            {0.47916666f, 0.60416670f},
            {0.47916666f, 0.60416670f},
            {0.52083330f, 0.60416670f},
            {0.52083330f, 0.60416670f},
            {0.56250000f, 0.60416670f},
            {0.56250000f, 0.60416670f},
            {0.60416670f, 0.60416670f},
            {0.60416670f, 0.60416670f},
            {0.64583330f, 0.60416670f},
            {0.64583330f, 0.60416670f},
            {0.68750000f, 0.60416670f},
            {0.68750000f, 0.60416670f},
            {0.72916670f, 0.60416670f},
            {0.72916670f, 0.60416670f},
            {0.77083330f, 0.60416670f},
            {0.77083330f, 0.60416670f},
            {0.81250000f, 0.60416670f},
            {0.81250000f, 0.60416670f},
            {0.85416670f, 0.60416670f},
            {0.85416670f, 0.60416670f},
            {0.89583330f, 0.60416670f},
            {0.89583330f, 0.60416670f},
            {0.93750000f, 0.60416670f},
            {0.93750000f, 0.60416670f},
            {0.97916670f, 0.60416670f},
            {0.97916670f, 0.60416670f},
            {0.02083333f, 0.64583330f},
            {0.02083333f, 0.64583330f},
            {0.06250000f, 0.64583330f},
            {0.06250000f, 0.64583330f},
            {0.10416666f, 0.64583330f},
            {0.10416666f, 0.64583330f},
            {0.14583333f, 0.64583330f},
            {0.14583333f, 0.64583330f},
            {0.18750000f, 0.64583330f},
            {0.18750000f, 0.64583330f},
            {0.22916667f, 0.64583330f},
            {0.22916667f, 0.64583330f},
            {0.27083334f, 0.64583330f},
            {0.27083334f, 0.64583330f},
            {0.31250000f, 0.64583330f},
            {0.31250000f, 0.64583330f},
            {0.35416666f, 0.64583330f},
            {0.35416666f, 0.64583330f},
            {0.39583334f, 0.64583330f},
            {0.39583334f, 0.64583330f},
            {0.43750000f, 0.64583330f},
            {0.43750000f, 0.64583330f},
            {0.47916666f, 0.64583330f},
            {0.47916666f, 0.64583330f},
            {0.52083330f, 0.64583330f},
            {0.52083330f, 0.64583330f},
            {0.56250000f, 0.64583330f},
            {0.56250000f, 0.64583330f},
            {0.60416670f, 0.64583330f},
            {0.60416670f, 0.64583330f},
            {0.64583330f, 0.64583330f},
            {0.64583330f, 0.64583330f},
            {0.68750000f, 0.64583330f},
            {0.68750000f, 0.64583330f},
            {0.72916670f, 0.64583330f},
            {0.72916670f, 0.64583330f},
            {0.77083330f, 0.64583330f},
            {0.77083330f, 0.64583330f},
            {0.81250000f, 0.64583330f},
            {0.81250000f, 0.64583330f},
            {0.85416670f, 0.64583330f},
            {0.85416670f, 0.64583330f},
            {0.89583330f, 0.64583330f},
            {0.89583330f, 0.64583330f},
            {0.93750000f, 0.64583330f},
            {0.93750000f, 0.64583330f},
            {0.97916670f, 0.64583330f},
            {0.97916670f, 0.64583330f},
            {0.02083333f, 0.68750000f},
            {0.02083333f, 0.68750000f},
            {0.06250000f, 0.68750000f},
            {0.06250000f, 0.68750000f},
            {0.10416666f, 0.68750000f},
            {0.10416666f, 0.68750000f},
            {0.14583333f, 0.68750000f},
            {0.14583333f, 0.68750000f},
            {0.18750000f, 0.68750000f},
            {0.18750000f, 0.68750000f},
            {0.22916667f, 0.68750000f},
            {0.22916667f, 0.68750000f},
            {0.27083334f, 0.68750000f},
            {0.27083334f, 0.68750000f},
            {0.31250000f, 0.68750000f},
            {0.31250000f, 0.68750000f},
            {0.35416666f, 0.68750000f},
            {0.35416666f, 0.68750000f},
            {0.39583334f, 0.68750000f},
            {0.39583334f, 0.68750000f},
            {0.43750000f, 0.68750000f},
            {0.43750000f, 0.68750000f},
            {0.47916666f, 0.68750000f},
            {0.47916666f, 0.68750000f},
            {0.52083330f, 0.68750000f},
            {0.52083330f, 0.68750000f},
            {0.56250000f, 0.68750000f},
            {0.56250000f, 0.68750000f},
            {0.60416670f, 0.68750000f},
            {0.60416670f, 0.68750000f},
            {0.64583330f, 0.68750000f},
            {0.64583330f, 0.68750000f},
            {0.68750000f, 0.68750000f},
            {0.68750000f, 0.68750000f},
            {0.72916670f, 0.68750000f},
            {0.72916670f, 0.68750000f},
            {0.77083330f, 0.68750000f},
            {0.77083330f, 0.68750000f},
            {0.81250000f, 0.68750000f},
            {0.81250000f, 0.68750000f},
            {0.85416670f, 0.68750000f},
            {0.85416670f, 0.68750000f},
            {0.89583330f, 0.68750000f},
            {0.89583330f, 0.68750000f},
            {0.93750000f, 0.68750000f},
            {0.93750000f, 0.68750000f},
            {0.97916670f, 0.68750000f},
            {0.97916670f, 0.68750000f},
            {0.02083333f, 0.72916670f},
            {0.02083333f, 0.72916670f},
            {0.06250000f, 0.72916670f},
            {0.06250000f, 0.72916670f},
            {0.10416666f, 0.72916670f},
            {0.10416666f, 0.72916670f},
            {0.14583333f, 0.72916670f},
            {0.14583333f, 0.72916670f},
            {0.18750000f, 0.72916670f},
            {0.18750000f, 0.72916670f},
            {0.22916667f, 0.72916670f},
            {0.22916667f, 0.72916670f},
            {0.27083334f, 0.72916670f},
            {0.27083334f, 0.72916670f},
            {0.31250000f, 0.72916670f},
            {0.31250000f, 0.72916670f},
            {0.35416666f, 0.72916670f},
            {0.35416666f, 0.72916670f},
            {0.39583334f, 0.72916670f},
            {0.39583334f, 0.72916670f},
            {0.43750000f, 0.72916670f},
            {0.43750000f, 0.72916670f},
            {0.47916666f, 0.72916670f},
            {0.47916666f, 0.72916670f},
            {0.52083330f, 0.72916670f},
            {0.52083330f, 0.72916670f},
            {0.56250000f, 0.72916670f},
            {0.56250000f, 0.72916670f},
            {0.60416670f, 0.72916670f},
            {0.60416670f, 0.72916670f},
            {0.64583330f, 0.72916670f},
            {0.64583330f, 0.72916670f},
            {0.68750000f, 0.72916670f},
            {0.68750000f, 0.72916670f},
            {0.72916670f, 0.72916670f},
            {0.72916670f, 0.72916670f},
            {0.77083330f, 0.72916670f},
            {0.77083330f, 0.72916670f},
            {0.81250000f, 0.72916670f},
            {0.81250000f, 0.72916670f},
            {0.85416670f, 0.72916670f},
            {0.85416670f, 0.72916670f},
            {0.89583330f, 0.72916670f},
            {0.89583330f, 0.72916670f},
            {0.93750000f, 0.72916670f},
            {0.93750000f, 0.72916670f},
            {0.97916670f, 0.72916670f},
            {0.97916670f, 0.72916670f},
            {0.02083333f, 0.77083330f},
            {0.02083333f, 0.77083330f},
            {0.06250000f, 0.77083330f},
            {0.06250000f, 0.77083330f},
            {0.10416666f, 0.77083330f},
            {0.10416666f, 0.77083330f},
            {0.14583333f, 0.77083330f},
            {0.14583333f, 0.77083330f},
            {0.18750000f, 0.77083330f},
            {0.18750000f, 0.77083330f},
            {0.22916667f, 0.77083330f},
            {0.22916667f, 0.77083330f},
            {0.27083334f, 0.77083330f},
            {0.27083334f, 0.77083330f},
            {0.31250000f, 0.77083330f},
            {0.31250000f, 0.77083330f},
            {0.35416666f, 0.77083330f},
            {0.35416666f, 0.77083330f},
            {0.39583334f, 0.77083330f},
            {0.39583334f, 0.77083330f},
            {0.43750000f, 0.77083330f},
            {0.43750000f, 0.77083330f},
            {0.47916666f, 0.77083330f},
            {0.47916666f, 0.77083330f},
            {0.52083330f, 0.77083330f},
            {0.52083330f, 0.77083330f},
            {0.56250000f, 0.77083330f},
            {0.56250000f, 0.77083330f},
            {0.60416670f, 0.77083330f},
            {0.60416670f, 0.77083330f},
            {0.64583330f, 0.77083330f},
            {0.64583330f, 0.77083330f},
            {0.68750000f, 0.77083330f},
            {0.68750000f, 0.77083330f},
            {0.72916670f, 0.77083330f},
            {0.72916670f, 0.77083330f},
            {0.77083330f, 0.77083330f},
            {0.77083330f, 0.77083330f},
            {0.81250000f, 0.77083330f},
            {0.81250000f, 0.77083330f},
            {0.85416670f, 0.77083330f},
            {0.85416670f, 0.77083330f},
            {0.89583330f, 0.77083330f},
            {0.89583330f, 0.77083330f},
            {0.93750000f, 0.77083330f},
            {0.93750000f, 0.77083330f},
            {0.97916670f, 0.77083330f},
            {0.97916670f, 0.77083330f},
            {0.02083333f, 0.81250000f},
            {0.02083333f, 0.81250000f},
            {0.06250000f, 0.81250000f},
            {0.06250000f, 0.81250000f},
            {0.10416666f, 0.81250000f},
            {0.10416666f, 0.81250000f},
            {0.14583333f, 0.81250000f},
            {0.14583333f, 0.81250000f},
            {0.18750000f, 0.81250000f},
            {0.18750000f, 0.81250000f},
            {0.22916667f, 0.81250000f},
            {0.22916667f, 0.81250000f},
            {0.27083334f, 0.81250000f},
            {0.27083334f, 0.81250000f},
            {0.31250000f, 0.81250000f},
            {0.31250000f, 0.81250000f},
            {0.35416666f, 0.81250000f},
            {0.35416666f, 0.81250000f},
            {0.39583334f, 0.81250000f},
            {0.39583334f, 0.81250000f},
            {0.43750000f, 0.81250000f},
            {0.43750000f, 0.81250000f},
            {0.47916666f, 0.81250000f},
            {0.47916666f, 0.81250000f},
            {0.52083330f, 0.81250000f},
            {0.52083330f, 0.81250000f},
            {0.56250000f, 0.81250000f},
            {0.56250000f, 0.81250000f},
            {0.60416670f, 0.81250000f},
            {0.60416670f, 0.81250000f},
            {0.64583330f, 0.81250000f},
            {0.64583330f, 0.81250000f},
            {0.68750000f, 0.81250000f},
            {0.68750000f, 0.81250000f},
            {0.72916670f, 0.81250000f},
            {0.72916670f, 0.81250000f},
            {0.77083330f, 0.81250000f},
            {0.77083330f, 0.81250000f},
            {0.81250000f, 0.81250000f},
            {0.81250000f, 0.81250000f},
            {0.85416670f, 0.81250000f},
            {0.85416670f, 0.81250000f},
            {0.89583330f, 0.81250000f},
            {0.89583330f, 0.81250000f},
            {0.93750000f, 0.81250000f},
            {0.93750000f, 0.81250000f},
            {0.97916670f, 0.81250000f},
            {0.97916670f, 0.81250000f},
            {0.02083333f, 0.85416670f},
            {0.02083333f, 0.85416670f},
            {0.06250000f, 0.85416670f},
            {0.06250000f, 0.85416670f},
            {0.10416666f, 0.85416670f},
            {0.10416666f, 0.85416670f},
            {0.14583333f, 0.85416670f},
            {0.14583333f, 0.85416670f},
            {0.18750000f, 0.85416670f},
            {0.18750000f, 0.85416670f},
            {0.22916667f, 0.85416670f},
            {0.22916667f, 0.85416670f},
            {0.27083334f, 0.85416670f},
            {0.27083334f, 0.85416670f},
            {0.31250000f, 0.85416670f},
            {0.31250000f, 0.85416670f},
            {0.35416666f, 0.85416670f},
            {0.35416666f, 0.85416670f},
            {0.39583334f, 0.85416670f},
            {0.39583334f, 0.85416670f},
            {0.43750000f, 0.85416670f},
            {0.43750000f, 0.85416670f},
            {0.47916666f, 0.85416670f},
            {0.47916666f, 0.85416670f},
            {0.52083330f, 0.85416670f},
            {0.52083330f, 0.85416670f},
            {0.56250000f, 0.85416670f},
            {0.56250000f, 0.85416670f},
            {0.60416670f, 0.85416670f},
            {0.60416670f, 0.85416670f},
            {0.64583330f, 0.85416670f},
            {0.64583330f, 0.85416670f},
            {0.68750000f, 0.85416670f},
            {0.68750000f, 0.85416670f},
            {0.72916670f, 0.85416670f},
            {0.72916670f, 0.85416670f},
            {0.77083330f, 0.85416670f},
            {0.77083330f, 0.85416670f},
            {0.81250000f, 0.85416670f},
            {0.81250000f, 0.85416670f},
            {0.85416670f, 0.85416670f},
            {0.85416670f, 0.85416670f},
            {0.89583330f, 0.85416670f},
            {0.89583330f, 0.85416670f},
            {0.93750000f, 0.85416670f},
            {0.93750000f, 0.85416670f},
            {0.97916670f, 0.85416670f},
            {0.97916670f, 0.85416670f},
            {0.02083333f, 0.89583330f},
            {0.02083333f, 0.89583330f},
            {0.06250000f, 0.89583330f},
            {0.06250000f, 0.89583330f},
            {0.10416666f, 0.89583330f},
            {0.10416666f, 0.89583330f},
            {0.14583333f, 0.89583330f},
            {0.14583333f, 0.89583330f},
            {0.18750000f, 0.89583330f},
            {0.18750000f, 0.89583330f},
            {0.22916667f, 0.89583330f},
            {0.22916667f, 0.89583330f},
            {0.27083334f, 0.89583330f},
            {0.27083334f, 0.89583330f},
            {0.31250000f, 0.89583330f},
            {0.31250000f, 0.89583330f},
            {0.35416666f, 0.89583330f},
            {0.35416666f, 0.89583330f},
            {0.39583334f, 0.89583330f},
            {0.39583334f, 0.89583330f},
            {0.43750000f, 0.89583330f},
            {0.43750000f, 0.89583330f},
            {0.47916666f, 0.89583330f},
            {0.47916666f, 0.89583330f},
            {0.52083330f, 0.89583330f},
            {0.52083330f, 0.89583330f},
            {0.56250000f, 0.89583330f},
            {0.56250000f, 0.89583330f},
            {0.60416670f, 0.89583330f},
            {0.60416670f, 0.89583330f},
            {0.64583330f, 0.89583330f},
            {0.64583330f, 0.89583330f},
            {0.68750000f, 0.89583330f},
            {0.68750000f, 0.89583330f},
            {0.72916670f, 0.89583330f},
            {0.72916670f, 0.89583330f},
            {0.77083330f, 0.89583330f},
            {0.77083330f, 0.89583330f},
            {0.81250000f, 0.89583330f},
            {0.81250000f, 0.89583330f},
            {0.85416670f, 0.89583330f},
            {0.85416670f, 0.89583330f},
            {0.89583330f, 0.89583330f},
            {0.89583330f, 0.89583330f},
            {0.93750000f, 0.89583330f},
            {0.93750000f, 0.89583330f},
            {0.97916670f, 0.89583330f},
            {0.97916670f, 0.89583330f},
            {0.02083333f, 0.93750000f},
            {0.02083333f, 0.93750000f},
            {0.06250000f, 0.93750000f},
            {0.06250000f, 0.93750000f},
            {0.10416666f, 0.93750000f},
            {0.10416666f, 0.93750000f},
            {0.14583333f, 0.93750000f},
            {0.14583333f, 0.93750000f},
            {0.18750000f, 0.93750000f},
            {0.18750000f, 0.93750000f},
            {0.22916667f, 0.93750000f},
            {0.22916667f, 0.93750000f},
            {0.27083334f, 0.93750000f},
            {0.27083334f, 0.93750000f},
            {0.31250000f, 0.93750000f},
            {0.31250000f, 0.93750000f},
            {0.35416666f, 0.93750000f},
            {0.35416666f, 0.93750000f},
            {0.39583334f, 0.93750000f},
            {0.39583334f, 0.93750000f},
            {0.43750000f, 0.93750000f},
            {0.43750000f, 0.93750000f},
            {0.47916666f, 0.93750000f},
            {0.47916666f, 0.93750000f},
            {0.52083330f, 0.93750000f},
            {0.52083330f, 0.93750000f},
            {0.56250000f, 0.93750000f},
            {0.56250000f, 0.93750000f},
            {0.60416670f, 0.93750000f},
            {0.60416670f, 0.93750000f},
            {0.64583330f, 0.93750000f},
            {0.64583330f, 0.93750000f},
            {0.68750000f, 0.93750000f},
            {0.68750000f, 0.93750000f},
            {0.72916670f, 0.93750000f},
            {0.72916670f, 0.93750000f},
            {0.77083330f, 0.93750000f},
            {0.77083330f, 0.93750000f},
            {0.81250000f, 0.93750000f},
            {0.81250000f, 0.93750000f},
            {0.85416670f, 0.93750000f},
            {0.85416670f, 0.93750000f},
            {0.89583330f, 0.93750000f},
            {0.89583330f, 0.93750000f},
            {0.93750000f, 0.93750000f},
            {0.93750000f, 0.93750000f},
            {0.97916670f, 0.93750000f},
            {0.97916670f, 0.93750000f},
            {0.02083333f, 0.97916670f},
            {0.02083333f, 0.97916670f},
            {0.06250000f, 0.97916670f},
            {0.06250000f, 0.97916670f},
            {0.10416666f, 0.97916670f},
            {0.10416666f, 0.97916670f},
            {0.14583333f, 0.97916670f},
            {0.14583333f, 0.97916670f},
            {0.18750000f, 0.97916670f},
            {0.18750000f, 0.97916670f},
            {0.22916667f, 0.97916670f},
            {0.22916667f, 0.97916670f},
            {0.27083334f, 0.97916670f},
            {0.27083334f, 0.97916670f},
            {0.31250000f, 0.97916670f},
            {0.31250000f, 0.97916670f},
            {0.35416666f, 0.97916670f},
            {0.35416666f, 0.97916670f},
            {0.39583334f, 0.97916670f},
            {0.39583334f, 0.97916670f},
            {0.43750000f, 0.97916670f},
            {0.43750000f, 0.97916670f},
            {0.47916666f, 0.97916670f},
            {0.47916666f, 0.97916670f},
            {0.52083330f, 0.97916670f},
            {0.52083330f, 0.97916670f},
            {0.56250000f, 0.97916670f},
            {0.56250000f, 0.97916670f},
            {0.60416670f, 0.97916670f},
            {0.60416670f, 0.97916670f},
            {0.64583330f, 0.97916670f},
            {0.64583330f, 0.97916670f},
            {0.68750000f, 0.97916670f},
            {0.68750000f, 0.97916670f},
            {0.72916670f, 0.97916670f},
            {0.72916670f, 0.97916670f},
            {0.77083330f, 0.97916670f},
            {0.77083330f, 0.97916670f},
            {0.81250000f, 0.97916670f},
            {0.81250000f, 0.97916670f},
            {0.85416670f, 0.97916670f},
            {0.85416670f, 0.97916670f},
            {0.89583330f, 0.97916670f},
            {0.89583330f, 0.97916670f},
            {0.93750000f, 0.97916670f},
            {0.93750000f, 0.97916670f},
            {0.97916670f, 0.97916670f},
            {0.97916670f, 0.97916670f},
            {0.04166667f, 0.04166667f},
            {0.04166667f, 0.04166667f},
            {0.04166667f, 0.04166667f},
            {0.04166667f, 0.04166667f},
            {0.04166667f, 0.04166667f},
            {0.04166667f, 0.04166667f},
            {0.12500000f, 0.04166667f},
            {0.12500000f, 0.04166667f},
            {0.12500000f, 0.04166667f},
            {0.12500000f, 0.04166667f},
            {0.12500000f, 0.04166667f},
            {0.12500000f, 0.04166667f},
            {0.20833333f, 0.04166667f},
            {0.20833333f, 0.04166667f},
            {0.20833333f, 0.04166667f},
            {0.20833333f, 0.04166667f},
            {0.20833333f, 0.04166667f},
            {0.20833333f, 0.04166667f},
            {0.29166666f, 0.04166667f},
            {0.29166666f, 0.04166667f},
            {0.29166666f, 0.04166667f},
            {0.29166666f, 0.04166667f},
            {0.29166666f, 0.04166667f},
            {0.29166666f, 0.04166667f},
            {0.37500000f, 0.04166667f},
            {0.37500000f, 0.04166667f},
            {0.37500000f, 0.04166667f},
            {0.37500000f, 0.04166667f},
            {0.37500000f, 0.04166667f},
            {0.37500000f, 0.04166667f},
            {0.45833334f, 0.04166667f},
            {0.45833334f, 0.04166667f},
            {0.45833334f, 0.04166667f},
            {0.45833334f, 0.04166667f},
            {0.45833334f, 0.04166667f},
            {0.45833334f, 0.04166667f},
            {0.54166670f, 0.04166667f},
            {0.54166670f, 0.04166667f},
            {0.54166670f, 0.04166667f},
            {0.54166670f, 0.04166667f},
            {0.54166670f, 0.04166667f},
            {0.54166670f, 0.04166667f},
            {0.62500000f, 0.04166667f},
            {0.62500000f, 0.04166667f},
            {0.62500000f, 0.04166667f},
            {0.62500000f, 0.04166667f},
            {0.62500000f, 0.04166667f},
            {0.62500000f, 0.04166667f},
            {0.70833330f, 0.04166667f},
            {0.70833330f, 0.04166667f},
            {0.70833330f, 0.04166667f},
            {0.70833330f, 0.04166667f},
            {0.70833330f, 0.04166667f},
            {0.70833330f, 0.04166667f},
            {0.79166670f, 0.04166667f},
            {0.79166670f, 0.04166667f},
            {0.79166670f, 0.04166667f},
            {0.79166670f, 0.04166667f},
            {0.79166670f, 0.04166667f},
            {0.79166670f, 0.04166667f},
            {0.87500000f, 0.04166667f},
            {0.87500000f, 0.04166667f},
            {0.87500000f, 0.04166667f},
            {0.87500000f, 0.04166667f},
            {0.87500000f, 0.04166667f},
            {0.87500000f, 0.04166667f},
            {0.95833330f, 0.04166667f},
            {0.95833330f, 0.04166667f},
            {0.95833330f, 0.04166667f},
            {0.95833330f, 0.04166667f},
            {0.95833330f, 0.04166667f},
            {0.95833330f, 0.04166667f},
            {0.04166667f, 0.12500000f},
            {0.04166667f, 0.12500000f},
            {0.04166667f, 0.12500000f},
            {0.04166667f, 0.12500000f},
            {0.04166667f, 0.12500000f},
            {0.04166667f, 0.12500000f},
            {0.12500000f, 0.12500000f},
            {0.12500000f, 0.12500000f},
            {0.12500000f, 0.12500000f},
            {0.12500000f, 0.12500000f},
            {0.12500000f, 0.12500000f},
            {0.12500000f, 0.12500000f},
            {0.20833333f, 0.12500000f},
            {0.20833333f, 0.12500000f},
            {0.20833333f, 0.12500000f},
            {0.20833333f, 0.12500000f},
            {0.20833333f, 0.12500000f},
            {0.20833333f, 0.12500000f},
            {0.29166666f, 0.12500000f},
            {0.29166666f, 0.12500000f},
            {0.29166666f, 0.12500000f},
            {0.29166666f, 0.12500000f},
            {0.29166666f, 0.12500000f},
            {0.29166666f, 0.12500000f},
            {0.37500000f, 0.12500000f},
            {0.37500000f, 0.12500000f},
            {0.37500000f, 0.12500000f},
            {0.37500000f, 0.12500000f},
            {0.37500000f, 0.12500000f},
            {0.37500000f, 0.12500000f},
            {0.45833334f, 0.12500000f},
            {0.45833334f, 0.12500000f},
            {0.45833334f, 0.12500000f},
            {0.45833334f, 0.12500000f},
            {0.45833334f, 0.12500000f},
            {0.45833334f, 0.12500000f},
            {0.54166670f, 0.12500000f},
            {0.54166670f, 0.12500000f},
            {0.54166670f, 0.12500000f},
            {0.54166670f, 0.12500000f},
            {0.54166670f, 0.12500000f},
            {0.54166670f, 0.12500000f},
            {0.62500000f, 0.12500000f},
            {0.62500000f, 0.12500000f},
            {0.62500000f, 0.12500000f},
            {0.62500000f, 0.12500000f},
            {0.62500000f, 0.12500000f},
            {0.62500000f, 0.12500000f},
            {0.70833330f, 0.12500000f},
            {0.70833330f, 0.12500000f},
            {0.70833330f, 0.12500000f},
            {0.70833330f, 0.12500000f},
            {0.70833330f, 0.12500000f},
            {0.70833330f, 0.12500000f},
            {0.79166670f, 0.12500000f},
            {0.79166670f, 0.12500000f},
            {0.79166670f, 0.12500000f},
            {0.79166670f, 0.12500000f},
            {0.79166670f, 0.12500000f},
            {0.79166670f, 0.12500000f},
            {0.87500000f, 0.12500000f},
            {0.87500000f, 0.12500000f},
            {0.87500000f, 0.12500000f},
            {0.87500000f, 0.12500000f},
            {0.87500000f, 0.12500000f},
            {0.87500000f, 0.12500000f},
            {0.95833330f, 0.12500000f},
            {0.95833330f, 0.12500000f},
            {0.95833330f, 0.12500000f},
            {0.95833330f, 0.12500000f},
            {0.95833330f, 0.12500000f},
            {0.95833330f, 0.12500000f},
            {0.04166667f, 0.20833333f},
            {0.04166667f, 0.20833333f},
            {0.04166667f, 0.20833333f},
            {0.04166667f, 0.20833333f},
            {0.04166667f, 0.20833333f},
            {0.04166667f, 0.20833333f},
            {0.12500000f, 0.20833333f},
            {0.12500000f, 0.20833333f},
            {0.12500000f, 0.20833333f},
            {0.12500000f, 0.20833333f},
            {0.12500000f, 0.20833333f},
            {0.12500000f, 0.20833333f},
            {0.20833333f, 0.20833333f},
            {0.20833333f, 0.20833333f},
            {0.20833333f, 0.20833333f},
            {0.20833333f, 0.20833333f},
            {0.20833333f, 0.20833333f},
            {0.20833333f, 0.20833333f},
            {0.29166666f, 0.20833333f},
            {0.29166666f, 0.20833333f},
            {0.29166666f, 0.20833333f},
            {0.29166666f, 0.20833333f},
            {0.29166666f, 0.20833333f},
            {0.29166666f, 0.20833333f},
            {0.37500000f, 0.20833333f},
            {0.37500000f, 0.20833333f},
            {0.37500000f, 0.20833333f},
            {0.37500000f, 0.20833333f},
            {0.37500000f, 0.20833333f},
            {0.37500000f, 0.20833333f},
            {0.45833334f, 0.20833333f},
            {0.45833334f, 0.20833333f},
            {0.45833334f, 0.20833333f},
            {0.45833334f, 0.20833333f},
            {0.45833334f, 0.20833333f},
            {0.45833334f, 0.20833333f},
            {0.54166670f, 0.20833333f},
            {0.54166670f, 0.20833333f},
            {0.54166670f, 0.20833333f},
            {0.54166670f, 0.20833333f},
            {0.54166670f, 0.20833333f},
            {0.54166670f, 0.20833333f},
            {0.62500000f, 0.20833333f},
            {0.62500000f, 0.20833333f},
            {0.62500000f, 0.20833333f},
            {0.62500000f, 0.20833333f},
            {0.62500000f, 0.20833333f},
            {0.62500000f, 0.20833333f},
            {0.70833330f, 0.20833333f},
            {0.70833330f, 0.20833333f},
            {0.70833330f, 0.20833333f},
            {0.70833330f, 0.20833333f},
            {0.70833330f, 0.20833333f},
            {0.70833330f, 0.20833333f},
            {0.79166670f, 0.20833333f},
            {0.79166670f, 0.20833333f},
            {0.79166670f, 0.20833333f},
            {0.79166670f, 0.20833333f},
            {0.79166670f, 0.20833333f},
            {0.79166670f, 0.20833333f},
            {0.87500000f, 0.20833333f},
            {0.87500000f, 0.20833333f},
            {0.87500000f, 0.20833333f},
            {0.87500000f, 0.20833333f},
            {0.87500000f, 0.20833333f},
            {0.87500000f, 0.20833333f},
            {0.95833330f, 0.20833333f},
            {0.95833330f, 0.20833333f},
            {0.95833330f, 0.20833333f},
            {0.95833330f, 0.20833333f},
            {0.95833330f, 0.20833333f},
            {0.95833330f, 0.20833333f},
            {0.04166667f, 0.29166666f},
            {0.04166667f, 0.29166666f},
            {0.04166667f, 0.29166666f},
            {0.04166667f, 0.29166666f},
            {0.04166667f, 0.29166666f},
            {0.04166667f, 0.29166666f},
            {0.12500000f, 0.29166666f},
            {0.12500000f, 0.29166666f},
            {0.12500000f, 0.29166666f},
            {0.12500000f, 0.29166666f},
            {0.12500000f, 0.29166666f},
            {0.12500000f, 0.29166666f},
            {0.20833333f, 0.29166666f},
            {0.20833333f, 0.29166666f},
            {0.20833333f, 0.29166666f},
            {0.20833333f, 0.29166666f},
            {0.20833333f, 0.29166666f},
            {0.20833333f, 0.29166666f},
            {0.29166666f, 0.29166666f},
            {0.29166666f, 0.29166666f},
            {0.29166666f, 0.29166666f},
            {0.29166666f, 0.29166666f},
            {0.29166666f, 0.29166666f},
            {0.29166666f, 0.29166666f},
            {0.37500000f, 0.29166666f},
            {0.37500000f, 0.29166666f},
            {0.37500000f, 0.29166666f},
            {0.37500000f, 0.29166666f},
            {0.37500000f, 0.29166666f},
            {0.37500000f, 0.29166666f},
            {0.45833334f, 0.29166666f},
            {0.45833334f, 0.29166666f},
            {0.45833334f, 0.29166666f},
            {0.45833334f, 0.29166666f},
            {0.45833334f, 0.29166666f},
            {0.45833334f, 0.29166666f},
            {0.54166670f, 0.29166666f},
            {0.54166670f, 0.29166666f},
            {0.54166670f, 0.29166666f},
            {0.54166670f, 0.29166666f},
            {0.54166670f, 0.29166666f},
            {0.54166670f, 0.29166666f},
            {0.62500000f, 0.29166666f},
            {0.62500000f, 0.29166666f},
            {0.62500000f, 0.29166666f},
            {0.62500000f, 0.29166666f},
            {0.62500000f, 0.29166666f},
            {0.62500000f, 0.29166666f},
            {0.70833330f, 0.29166666f},
            {0.70833330f, 0.29166666f},
            {0.70833330f, 0.29166666f},
            {0.70833330f, 0.29166666f},
            {0.70833330f, 0.29166666f},
            {0.70833330f, 0.29166666f},
            {0.79166670f, 0.29166666f},
            {0.79166670f, 0.29166666f},
            {0.79166670f, 0.29166666f},
            {0.79166670f, 0.29166666f},
            {0.79166670f, 0.29166666f},
            {0.79166670f, 0.29166666f},
            {0.87500000f, 0.29166666f},
            {0.87500000f, 0.29166666f},
            {0.87500000f, 0.29166666f},
            {0.87500000f, 0.29166666f},
            {0.87500000f, 0.29166666f},
            {0.87500000f, 0.29166666f},
            {0.95833330f, 0.29166666f},
            {0.95833330f, 0.29166666f},
            {0.95833330f, 0.29166666f},
            {0.95833330f, 0.29166666f},
            {0.95833330f, 0.29166666f},
            {0.95833330f, 0.29166666f},
            {0.04166667f, 0.37500000f},
            {0.04166667f, 0.37500000f},
            {0.04166667f, 0.37500000f},
            {0.04166667f, 0.37500000f},
            {0.04166667f, 0.37500000f},
            {0.04166667f, 0.37500000f},
            {0.12500000f, 0.37500000f},
            {0.12500000f, 0.37500000f},
            {0.12500000f, 0.37500000f},
            {0.12500000f, 0.37500000f},
            {0.12500000f, 0.37500000f},
            {0.12500000f, 0.37500000f},
            {0.20833333f, 0.37500000f},
            {0.20833333f, 0.37500000f},
            {0.20833333f, 0.37500000f},
            {0.20833333f, 0.37500000f},
            {0.20833333f, 0.37500000f},
            {0.20833333f, 0.37500000f},
            {0.29166666f, 0.37500000f},
            {0.29166666f, 0.37500000f},
            {0.29166666f, 0.37500000f},
            {0.29166666f, 0.37500000f},
            {0.29166666f, 0.37500000f},
            {0.29166666f, 0.37500000f},
            {0.37500000f, 0.37500000f},
            {0.37500000f, 0.37500000f},
            {0.37500000f, 0.37500000f},
            {0.37500000f, 0.37500000f},
            {0.37500000f, 0.37500000f},
            {0.37500000f, 0.37500000f},
            {0.45833334f, 0.37500000f},
            {0.45833334f, 0.37500000f},
            {0.45833334f, 0.37500000f},
            {0.45833334f, 0.37500000f},
            {0.45833334f, 0.37500000f},
            {0.45833334f, 0.37500000f},
            {0.54166670f, 0.37500000f},
            {0.54166670f, 0.37500000f},
            {0.54166670f, 0.37500000f},
            {0.54166670f, 0.37500000f},
            {0.54166670f, 0.37500000f},
            {0.54166670f, 0.37500000f},
            {0.62500000f, 0.37500000f},
            {0.62500000f, 0.37500000f},
            {0.62500000f, 0.37500000f},
            {0.62500000f, 0.37500000f},
            {0.62500000f, 0.37500000f},
            {0.62500000f, 0.37500000f},
            {0.70833330f, 0.37500000f},
            {0.70833330f, 0.37500000f},
            {0.70833330f, 0.37500000f},
            {0.70833330f, 0.37500000f},
            {0.70833330f, 0.37500000f},
            {0.70833330f, 0.37500000f},
            {0.79166670f, 0.37500000f},
            {0.79166670f, 0.37500000f},
            {0.79166670f, 0.37500000f},
            {0.79166670f, 0.37500000f},
            {0.79166670f, 0.37500000f},
            {0.79166670f, 0.37500000f},
            {0.87500000f, 0.37500000f},
            {0.87500000f, 0.37500000f},
            {0.87500000f, 0.37500000f},
            {0.87500000f, 0.37500000f},
            {0.87500000f, 0.37500000f},
            {0.87500000f, 0.37500000f},
            {0.95833330f, 0.37500000f},
            {0.95833330f, 0.37500000f},
            {0.95833330f, 0.37500000f},
            {0.95833330f, 0.37500000f},
            {0.95833330f, 0.37500000f},
            {0.95833330f, 0.37500000f},
            {0.04166667f, 0.45833334f},
            {0.04166667f, 0.45833334f},
            {0.04166667f, 0.45833334f},
            {0.04166667f, 0.45833334f},
            {0.04166667f, 0.45833334f},
            {0.04166667f, 0.45833334f},
            {0.12500000f, 0.45833334f},
            {0.12500000f, 0.45833334f},
            {0.12500000f, 0.45833334f},
            {0.12500000f, 0.45833334f},
            {0.12500000f, 0.45833334f},
            {0.12500000f, 0.45833334f},
            {0.20833333f, 0.45833334f},
            {0.20833333f, 0.45833334f},
            {0.20833333f, 0.45833334f},
            {0.20833333f, 0.45833334f},
            {0.20833333f, 0.45833334f},
            {0.20833333f, 0.45833334f},
            {0.29166666f, 0.45833334f},
            {0.29166666f, 0.45833334f},
            {0.29166666f, 0.45833334f},
            {0.29166666f, 0.45833334f},
            {0.29166666f, 0.45833334f},
            {0.29166666f, 0.45833334f},
            {0.37500000f, 0.45833334f},
            {0.37500000f, 0.45833334f},
            {0.37500000f, 0.45833334f},
            {0.37500000f, 0.45833334f},
            {0.37500000f, 0.45833334f},
            {0.37500000f, 0.45833334f},
            {0.45833334f, 0.45833334f},
            {0.45833334f, 0.45833334f},
            {0.45833334f, 0.45833334f},
            {0.45833334f, 0.45833334f},
            {0.45833334f, 0.45833334f},
            {0.45833334f, 0.45833334f},
            {0.54166670f, 0.45833334f},
            {0.54166670f, 0.45833334f},
            {0.54166670f, 0.45833334f},
            {0.54166670f, 0.45833334f},
            {0.54166670f, 0.45833334f},
            {0.54166670f, 0.45833334f},
            {0.62500000f, 0.45833334f},
            {0.62500000f, 0.45833334f},
            {0.62500000f, 0.45833334f},
            {0.62500000f, 0.45833334f},
            {0.62500000f, 0.45833334f},
            {0.62500000f, 0.45833334f},
            {0.70833330f, 0.45833334f},
            {0.70833330f, 0.45833334f},
            {0.70833330f, 0.45833334f},
            {0.70833330f, 0.45833334f},
            {0.70833330f, 0.45833334f},
            {0.70833330f, 0.45833334f},
            {0.79166670f, 0.45833334f},
            {0.79166670f, 0.45833334f},
            {0.79166670f, 0.45833334f},
            {0.79166670f, 0.45833334f},
            {0.79166670f, 0.45833334f},
            {0.79166670f, 0.45833334f},
            {0.87500000f, 0.45833334f},
            {0.87500000f, 0.45833334f},
            {0.87500000f, 0.45833334f},
            {0.87500000f, 0.45833334f},
            {0.87500000f, 0.45833334f},
            {0.87500000f, 0.45833334f},
            {0.95833330f, 0.45833334f},
            {0.95833330f, 0.45833334f},
            {0.95833330f, 0.45833334f},
            {0.95833330f, 0.45833334f},
            {0.95833330f, 0.45833334f},
            {0.95833330f, 0.45833334f},
            {0.04166667f, 0.54166670f},
            {0.04166667f, 0.54166670f},
            {0.04166667f, 0.54166670f},
            {0.04166667f, 0.54166670f},
            {0.04166667f, 0.54166670f},
            {0.04166667f, 0.54166670f},
            {0.12500000f, 0.54166670f},
            {0.12500000f, 0.54166670f},
            {0.12500000f, 0.54166670f},
            {0.12500000f, 0.54166670f},
            {0.12500000f, 0.54166670f},
            {0.12500000f, 0.54166670f},
            {0.20833333f, 0.54166670f},
            {0.20833333f, 0.54166670f},
            {0.20833333f, 0.54166670f},
            {0.20833333f, 0.54166670f},
            {0.20833333f, 0.54166670f},
            {0.20833333f, 0.54166670f},
            {0.29166666f, 0.54166670f},
            {0.29166666f, 0.54166670f},
            {0.29166666f, 0.54166670f},
            {0.29166666f, 0.54166670f},
            {0.29166666f, 0.54166670f},
            {0.29166666f, 0.54166670f},
            {0.37500000f, 0.54166670f},
            {0.37500000f, 0.54166670f},
            {0.37500000f, 0.54166670f},
            {0.37500000f, 0.54166670f},
            {0.37500000f, 0.54166670f},
            {0.37500000f, 0.54166670f},
            {0.45833334f, 0.54166670f},
            {0.45833334f, 0.54166670f},
            {0.45833334f, 0.54166670f},
            {0.45833334f, 0.54166670f},
            {0.45833334f, 0.54166670f},
            {0.45833334f, 0.54166670f},
            {0.54166670f, 0.54166670f},
            {0.54166670f, 0.54166670f},
            {0.54166670f, 0.54166670f},
            {0.54166670f, 0.54166670f},
            {0.54166670f, 0.54166670f},
            {0.54166670f, 0.54166670f},
            {0.62500000f, 0.54166670f},
            {0.62500000f, 0.54166670f},
            {0.62500000f, 0.54166670f},
            {0.62500000f, 0.54166670f},
            {0.62500000f, 0.54166670f},
            {0.62500000f, 0.54166670f},
            {0.70833330f, 0.54166670f},
            {0.70833330f, 0.54166670f},
            {0.70833330f, 0.54166670f},
            {0.70833330f, 0.54166670f},
            {0.70833330f, 0.54166670f},
            {0.70833330f, 0.54166670f},
            {0.79166670f, 0.54166670f},
            {0.79166670f, 0.54166670f},
            {0.79166670f, 0.54166670f},
            {0.79166670f, 0.54166670f},
            {0.79166670f, 0.54166670f},
            {0.79166670f, 0.54166670f},
            {0.87500000f, 0.54166670f},
            {0.87500000f, 0.54166670f},
            {0.87500000f, 0.54166670f},
            {0.87500000f, 0.54166670f},
            {0.87500000f, 0.54166670f},
            {0.87500000f, 0.54166670f},
            {0.95833330f, 0.54166670f},
            {0.95833330f, 0.54166670f},
            {0.95833330f, 0.54166670f},
            {0.95833330f, 0.54166670f},
            {0.95833330f, 0.54166670f},
            {0.95833330f, 0.54166670f},
            {0.04166667f, 0.62500000f},
            {0.04166667f, 0.62500000f},
            {0.04166667f, 0.62500000f},
            {0.04166667f, 0.62500000f},
            {0.04166667f, 0.62500000f},
            {0.04166667f, 0.62500000f},
            {0.12500000f, 0.62500000f},
            {0.12500000f, 0.62500000f},
            {0.12500000f, 0.62500000f},
            {0.12500000f, 0.62500000f},
            {0.12500000f, 0.62500000f},
            {0.12500000f, 0.62500000f},
            {0.20833333f, 0.62500000f},
            {0.20833333f, 0.62500000f},
            {0.20833333f, 0.62500000f},
            {0.20833333f, 0.62500000f},
            {0.20833333f, 0.62500000f},
            {0.20833333f, 0.62500000f},
            {0.29166666f, 0.62500000f},
            {0.29166666f, 0.62500000f},
            {0.29166666f, 0.62500000f},
            {0.29166666f, 0.62500000f},
            {0.29166666f, 0.62500000f},
            {0.29166666f, 0.62500000f},
            {0.37500000f, 0.62500000f},
            {0.37500000f, 0.62500000f},
            {0.37500000f, 0.62500000f},
            {0.37500000f, 0.62500000f},
            {0.37500000f, 0.62500000f},
            {0.37500000f, 0.62500000f},
            {0.45833334f, 0.62500000f},
            {0.45833334f, 0.62500000f},
            {0.45833334f, 0.62500000f},
            {0.45833334f, 0.62500000f},
            {0.45833334f, 0.62500000f},
            {0.45833334f, 0.62500000f},
            {0.54166670f, 0.62500000f},
            {0.54166670f, 0.62500000f},
            {0.54166670f, 0.62500000f},
            {0.54166670f, 0.62500000f},
            {0.54166670f, 0.62500000f},
            {0.54166670f, 0.62500000f},
            {0.62500000f, 0.62500000f},
            {0.62500000f, 0.62500000f},
            {0.62500000f, 0.62500000f},
            {0.62500000f, 0.62500000f},
            {0.62500000f, 0.62500000f},
            {0.62500000f, 0.62500000f},
            {0.70833330f, 0.62500000f},
            {0.70833330f, 0.62500000f},
            {0.70833330f, 0.62500000f},
            {0.70833330f, 0.62500000f},
            {0.70833330f, 0.62500000f},
            {0.70833330f, 0.62500000f},
            {0.79166670f, 0.62500000f},
            {0.79166670f, 0.62500000f},
            {0.79166670f, 0.62500000f},
            {0.79166670f, 0.62500000f},
            {0.79166670f, 0.62500000f},
            {0.79166670f, 0.62500000f},
            {0.87500000f, 0.62500000f},
            {0.87500000f, 0.62500000f},
            {0.87500000f, 0.62500000f},
            {0.87500000f, 0.62500000f},
            {0.87500000f, 0.62500000f},
            {0.87500000f, 0.62500000f},
            {0.95833330f, 0.62500000f},
            {0.95833330f, 0.62500000f},
            {0.95833330f, 0.62500000f},
            {0.95833330f, 0.62500000f},
            {0.95833330f, 0.62500000f},
            {0.95833330f, 0.62500000f},
            {0.04166667f, 0.70833330f},
            {0.04166667f, 0.70833330f},
            {0.04166667f, 0.70833330f},
            {0.04166667f, 0.70833330f},
            {0.04166667f, 0.70833330f},
            {0.04166667f, 0.70833330f},
            {0.12500000f, 0.70833330f},
            {0.12500000f, 0.70833330f},
            {0.12500000f, 0.70833330f},
            {0.12500000f, 0.70833330f},
            {0.12500000f, 0.70833330f},
            {0.12500000f, 0.70833330f},
            {0.20833333f, 0.70833330f},
            {0.20833333f, 0.70833330f},
            {0.20833333f, 0.70833330f},
            {0.20833333f, 0.70833330f},
            {0.20833333f, 0.70833330f},
            {0.20833333f, 0.70833330f},
            {0.29166666f, 0.70833330f},
            {0.29166666f, 0.70833330f},
            {0.29166666f, 0.70833330f},
            {0.29166666f, 0.70833330f},
            {0.29166666f, 0.70833330f},
            {0.29166666f, 0.70833330f},
            {0.37500000f, 0.70833330f},
            {0.37500000f, 0.70833330f},
            {0.37500000f, 0.70833330f},
            {0.37500000f, 0.70833330f},
            {0.37500000f, 0.70833330f},
            {0.37500000f, 0.70833330f},
            {0.45833334f, 0.70833330f},
            {0.45833334f, 0.70833330f},
            {0.45833334f, 0.70833330f},
            {0.45833334f, 0.70833330f},
            {0.45833334f, 0.70833330f},
            {0.45833334f, 0.70833330f},
            {0.54166670f, 0.70833330f},
            {0.54166670f, 0.70833330f},
            {0.54166670f, 0.70833330f},
            {0.54166670f, 0.70833330f},
            {0.54166670f, 0.70833330f},
            {0.54166670f, 0.70833330f},
            {0.62500000f, 0.70833330f},
            {0.62500000f, 0.70833330f},
            {0.62500000f, 0.70833330f},
            {0.62500000f, 0.70833330f},
            {0.62500000f, 0.70833330f},
            {0.62500000f, 0.70833330f},
            {0.70833330f, 0.70833330f},
            {0.70833330f, 0.70833330f},
            {0.70833330f, 0.70833330f},
            {0.70833330f, 0.70833330f},
            {0.70833330f, 0.70833330f},
            {0.70833330f, 0.70833330f},
            {0.79166670f, 0.70833330f},
            {0.79166670f, 0.70833330f},
            {0.79166670f, 0.70833330f},
            {0.79166670f, 0.70833330f},
            {0.79166670f, 0.70833330f},
            {0.79166670f, 0.70833330f},
            {0.87500000f, 0.70833330f},
            {0.87500000f, 0.70833330f},
            {0.87500000f, 0.70833330f},
            {0.87500000f, 0.70833330f},
            {0.87500000f, 0.70833330f},
            {0.87500000f, 0.70833330f},
            {0.95833330f, 0.70833330f},
            {0.95833330f, 0.70833330f},
            {0.95833330f, 0.70833330f},
            {0.95833330f, 0.70833330f},
            {0.95833330f, 0.70833330f},
            {0.95833330f, 0.70833330f},
            {0.04166667f, 0.79166670f},
            {0.04166667f, 0.79166670f},
            {0.04166667f, 0.79166670f},
            {0.04166667f, 0.79166670f},
            {0.04166667f, 0.79166670f},
            {0.04166667f, 0.79166670f},
            {0.12500000f, 0.79166670f},
            {0.12500000f, 0.79166670f},
            {0.12500000f, 0.79166670f},
            {0.12500000f, 0.79166670f},
            {0.12500000f, 0.79166670f},
            {0.12500000f, 0.79166670f},
            {0.20833333f, 0.79166670f},
            {0.20833333f, 0.79166670f},
            {0.20833333f, 0.79166670f},
            {0.20833333f, 0.79166670f},
            {0.20833333f, 0.79166670f},
            {0.20833333f, 0.79166670f},
            {0.29166666f, 0.79166670f},
            {0.29166666f, 0.79166670f},
            {0.29166666f, 0.79166670f},
            {0.29166666f, 0.79166670f},
            {0.29166666f, 0.79166670f},
            {0.29166666f, 0.79166670f},
            {0.37500000f, 0.79166670f},
            {0.37500000f, 0.79166670f},
            {0.37500000f, 0.79166670f},
            {0.37500000f, 0.79166670f},
            {0.37500000f, 0.79166670f},
            {0.37500000f, 0.79166670f},
            {0.45833334f, 0.79166670f},
            {0.45833334f, 0.79166670f},
            {0.45833334f, 0.79166670f},
            {0.45833334f, 0.79166670f},
            {0.45833334f, 0.79166670f},
            {0.45833334f, 0.79166670f},
            {0.54166670f, 0.79166670f},
            {0.54166670f, 0.79166670f},
            {0.54166670f, 0.79166670f},
            {0.54166670f, 0.79166670f},
            {0.54166670f, 0.79166670f},
            {0.54166670f, 0.79166670f},
            {0.62500000f, 0.79166670f},
            {0.62500000f, 0.79166670f},
            {0.62500000f, 0.79166670f},
            {0.62500000f, 0.79166670f},
            {0.62500000f, 0.79166670f},
            {0.62500000f, 0.79166670f},
            {0.70833330f, 0.79166670f},
            {0.70833330f, 0.79166670f},
            {0.70833330f, 0.79166670f},
            {0.70833330f, 0.79166670f},
            {0.70833330f, 0.79166670f},
            {0.70833330f, 0.79166670f},
            {0.79166670f, 0.79166670f},
            {0.79166670f, 0.79166670f},
            {0.79166670f, 0.79166670f},
            {0.79166670f, 0.79166670f},
            {0.79166670f, 0.79166670f},
            {0.79166670f, 0.79166670f},
            {0.87500000f, 0.79166670f},
            {0.87500000f, 0.79166670f},
            {0.87500000f, 0.79166670f},
            {0.87500000f, 0.79166670f},
            {0.87500000f, 0.79166670f},
            {0.87500000f, 0.79166670f},
            {0.95833330f, 0.79166670f},
            {0.95833330f, 0.79166670f},
            {0.95833330f, 0.79166670f},
            {0.95833330f, 0.79166670f},
            {0.95833330f, 0.79166670f},
            {0.95833330f, 0.79166670f},
            {0.04166667f, 0.87500000f},
            {0.04166667f, 0.87500000f},
            {0.04166667f, 0.87500000f},
            {0.04166667f, 0.87500000f},
            {0.04166667f, 0.87500000f},
            {0.04166667f, 0.87500000f},
            {0.12500000f, 0.87500000f},
            {0.12500000f, 0.87500000f},
            {0.12500000f, 0.87500000f},
            {0.12500000f, 0.87500000f},
            {0.12500000f, 0.87500000f},
            {0.12500000f, 0.87500000f},
            {0.20833333f, 0.87500000f},
            {0.20833333f, 0.87500000f},
            {0.20833333f, 0.87500000f},
            {0.20833333f, 0.87500000f},
            {0.20833333f, 0.87500000f},
            {0.20833333f, 0.87500000f},
            {0.29166666f, 0.87500000f},
            {0.29166666f, 0.87500000f},
            {0.29166666f, 0.87500000f},
            {0.29166666f, 0.87500000f},
            {0.29166666f, 0.87500000f},
            {0.29166666f, 0.87500000f},
            {0.37500000f, 0.87500000f},
            {0.37500000f, 0.87500000f},
            {0.37500000f, 0.87500000f},
            {0.37500000f, 0.87500000f},
            {0.37500000f, 0.87500000f},
            {0.37500000f, 0.87500000f},
            {0.45833334f, 0.87500000f},
            {0.45833334f, 0.87500000f},
            {0.45833334f, 0.87500000f},
            {0.45833334f, 0.87500000f},
            {0.45833334f, 0.87500000f},
            {0.45833334f, 0.87500000f},
            {0.54166670f, 0.87500000f},
            {0.54166670f, 0.87500000f},
            {0.54166670f, 0.87500000f},
            {0.54166670f, 0.87500000f},
            {0.54166670f, 0.87500000f},
            {0.54166670f, 0.87500000f},
            {0.62500000f, 0.87500000f},
            {0.62500000f, 0.87500000f},
            {0.62500000f, 0.87500000f},
            {0.62500000f, 0.87500000f},
            {0.62500000f, 0.87500000f},
            {0.62500000f, 0.87500000f},
            {0.70833330f, 0.87500000f},
            {0.70833330f, 0.87500000f},
            {0.70833330f, 0.87500000f},
            {0.70833330f, 0.87500000f},
            {0.70833330f, 0.87500000f},
            {0.70833330f, 0.87500000f},
            {0.79166670f, 0.87500000f},
            {0.79166670f, 0.87500000f},
            {0.79166670f, 0.87500000f},
            {0.79166670f, 0.87500000f},
            {0.79166670f, 0.87500000f},
            {0.79166670f, 0.87500000f},
            {0.87500000f, 0.87500000f},
            {0.87500000f, 0.87500000f},
            {0.87500000f, 0.87500000f},
            {0.87500000f, 0.87500000f},
            {0.87500000f, 0.87500000f},
            {0.87500000f, 0.87500000f},
            {0.95833330f, 0.87500000f},
            {0.95833330f, 0.87500000f},
            {0.95833330f, 0.87500000f},
            {0.95833330f, 0.87500000f},
            {0.95833330f, 0.87500000f},
            {0.95833330f, 0.87500000f},
            {0.04166667f, 0.95833330f},
            {0.04166667f, 0.95833330f},
            {0.04166667f, 0.95833330f},
            {0.04166667f, 0.95833330f},
            {0.04166667f, 0.95833330f},
            {0.04166667f, 0.95833330f},
            {0.12500000f, 0.95833330f},
            {0.12500000f, 0.95833330f},
            {0.12500000f, 0.95833330f},
            {0.12500000f, 0.95833330f},
            {0.12500000f, 0.95833330f},
            {0.12500000f, 0.95833330f},
            {0.20833333f, 0.95833330f},
            {0.20833333f, 0.95833330f},
            {0.20833333f, 0.95833330f},
            {0.20833333f, 0.95833330f},
            {0.20833333f, 0.95833330f},
            {0.20833333f, 0.95833330f},
            {0.29166666f, 0.95833330f},
            {0.29166666f, 0.95833330f},
            {0.29166666f, 0.95833330f},
            {0.29166666f, 0.95833330f},
            {0.29166666f, 0.95833330f},
            {0.29166666f, 0.95833330f},
            {0.37500000f, 0.95833330f},
            {0.37500000f, 0.95833330f},
            {0.37500000f, 0.95833330f},
            {0.37500000f, 0.95833330f},
            {0.37500000f, 0.95833330f},
            {0.37500000f, 0.95833330f},
            {0.45833334f, 0.95833330f},
            {0.45833334f, 0.95833330f},
            {0.45833334f, 0.95833330f},
            {0.45833334f, 0.95833330f},
            {0.45833334f, 0.95833330f},
            {0.45833334f, 0.95833330f},
            {0.54166670f, 0.95833330f},
            {0.54166670f, 0.95833330f},
            {0.54166670f, 0.95833330f},
            {0.54166670f, 0.95833330f},
            {0.54166670f, 0.95833330f},
            {0.54166670f, 0.95833330f},
            {0.62500000f, 0.95833330f},
            {0.62500000f, 0.95833330f},
            {0.62500000f, 0.95833330f},
            {0.62500000f, 0.95833330f},
            {0.62500000f, 0.95833330f},
            {0.62500000f, 0.95833330f},
            {0.70833330f, 0.95833330f},
            {0.70833330f, 0.95833330f},
            {0.70833330f, 0.95833330f},
            {0.70833330f, 0.95833330f},
            {0.70833330f, 0.95833330f},
            {0.70833330f, 0.95833330f},
            {0.79166670f, 0.95833330f},
            {0.79166670f, 0.95833330f},
            {0.79166670f, 0.95833330f},
            {0.79166670f, 0.95833330f},
            {0.79166670f, 0.95833330f},
            {0.79166670f, 0.95833330f},
            {0.87500000f, 0.95833330f},
            {0.87500000f, 0.95833330f},
            {0.87500000f, 0.95833330f},
            {0.87500000f, 0.95833330f},
            {0.87500000f, 0.95833330f},
            {0.87500000f, 0.95833330f},
            {0.95833330f, 0.95833330f},
            {0.95833330f, 0.95833330f},
            {0.95833330f, 0.95833330f},
            {0.95833330f, 0.95833330f},
            {0.95833330f, 0.95833330f},
            {0.95833330f, 0.95833330f},
    };
    return anchors;
}
